#include<stdio.h>
//编写最大公约数GCD函数
/*********Begin*********/
long long GCD(long long int n,long long int m)
{
    long long int temp;
    long long int a;
    if(m>n)
    {
       a=m;
       m=n;
       n=a;
    }
    while(m!=0)
    {
        temp=n%m;
        n=m;
        m=temp;
    }
    return n;
}
/*********End**********/

//编写最小公倍数LCM函数
/*********Begin*********/
long long int LCM(long long int n,long long int m)
{
    long long int a;
    long long int i;
    a=GCD(n,m);
    i=n*m/a;
    return i;
}
/*********End**********/
int main(void)
{
    /*********Begin*********/
long long int n,m;
scanf("%lld %lld",&n,&m);
if(m <= 0 || n<=0)
{
    printf("Input Error");
}
else
{
    printf("%lld %lld",GCD(n,m),LCM(n,m));
}
    /*********End**********/
    return 0;
}